package com.zoo.diannaopeijian.service.impl;

import com.zoo.diannaopeijian.common.util.CheckUtil;
import com.zoo.diannaopeijian.domain.PurchaseItem;
import com.zoo.diannaopeijian.mapper.PurchaseItemMapper;
import com.zoo.diannaopeijian.service.PurchaseItemService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * 进货项服务实现类
 */
@Service
public class PurchaseItemServiceImpl implements PurchaseItemService {
    @Resource
    private PurchaseItemMapper purchaseItemMapper;

    @Override
    public boolean insertPurchaseItem(PurchaseItem purchaseItem) {
        if (CheckUtil.allNullBeanCheck(purchaseItem)) {
            return true;
        }
        return purchaseItemMapper.insertSelective(purchaseItem) == 1;
    }

    @Override
    public boolean insertPurchaseItems(List<PurchaseItem> purchaseItemList) {
        if (purchaseItemList == null || purchaseItemList.size() == 0) {
            return true;
        }

        return purchaseItemMapper.insertList(purchaseItemList) > 0;
    }

    @Override
    public List<PurchaseItem> deletePurchaseItem(PurchaseItem purchaseItem) {
        if (CheckUtil.allNullBeanCheck(purchaseItem)) {
            throw new RuntimeException("当前正欲执行清空数表操作");
        }

        List<PurchaseItem> itemBeDeleted = purchaseItemMapper.select(purchaseItem);

        int numsBeDelete = purchaseItemMapper.delete(purchaseItem);

        if (itemBeDeleted.size() != numsBeDelete) {
            // 要删除的数据被其他事务先删除了，要不要做什么东西呢
        }

        return itemBeDeleted;
    }

    @Override
    public List<Map<String, Object>> getPurchaseItemsByPurRecId(Integer purchaseRecordId) {
        if (purchaseRecordId == null) {
            throw new NullPointerException();
        }
        return purchaseItemMapper.getPurchaseItemsByPurRecId(purchaseRecordId);
    }
}
